// submit()：提交表单
// document.getElementById("myForm").submit();

let checkUsernameResult = 1;

// 定义一个正确图片的HTML代码。
let rightImg = '<img src="img/gou.png" height="32" width="31" style="vertical-align: middle"/>';

function checkForm() {
    // ------用户名校验：--------
    let username = $("#username").val();
    if (username == "") {
        /*alert("用户名不能为空");*/
        $("#usernameSpan").text("用户名不能为空");
        return false;
    }  else {
        $("#usernameSpan").html(rightImg);
    }

    if(checkUsernameResult == 0) {
        $("#usernameSpan").text("用户名不可以使用!");
        return false;
    }

    /**
     *  校验密码：
     *  1.密码的长度必须在3~8之间。
     *  2.只允许：数字、字母、下划线 _
     */
    let pwd = $("#pwd").val();
    if (pwd == "") {
        $("#passwordSpan").text("密码不能为空");
        return false;
    }
    // ------密码校验：--------
    let pwdLen = pwd.length;
    if (3 > pwdLen || pwdLen>8){
        $("#passwordSpan").text("长度必须在3~8之间");
        return false;
    } else {
        $("#passwordSpan").html(rightImg);
    }

    /**
     * JS正则表达式：
     * \w  : [0-9A-Za-z_]
     */
    let pwdReg = /^\w+$/i;
    if (!pwdReg.test(pwd)) {
        $("#passwordSpan").text("密码中只能包含数字、字母或下划线");
        return false;
    } else {

    }

    // ------手机号校验：-------- 1开头，数字，必须共11位。
    let phoneElement = $("#phone");
    let phone = phoneElement.val();
    let phoneReg = /^[1][0-9]{10}$/;
    let phoneSpanEle = phoneElement.next("span");// 获取下一个同层次的元素节点。
    console.log(phoneSpanEle);
    if(phoneReg.test(phone)) {
        console.log("1");
        phoneSpanEle.html(rightImg);
    } else {
        console.log("2");
        phoneSpanEle.text("手机号不合法！");
        return false;
    }
    return true;
}

/**
 *校验用户名是否重复
 */
function checkUsername(){
    /*alert('离开了用户名文本框！')*/
    let username = $("#username").val();
    $.ajax({
        url:"/checkUsername.action",
        async:false, // 同步请求
        cache:false, // 每次发送请求时，加一个时间戳。
        data: {
            "username":username
        },
        success :function (data) {
            if (data == "1") {
                $("#usernameSpan").html(rightImg);
                checkUsernameResult = 1;
            } else {
                $("#usernameSpan").text("用户名不可以使用!");
                checkUsernameResult = 0;
            }
        }
    });

}

//点击"换一张"，重新生成验证码。
function generateImg() {
    let t = new Date().getTime();
    console.log("------UserUpdate:重新生成验证码:t="+t);
    $("#codeImg").attr("src","/generateVerifyCodeImage.action?t="+t);
}

$(function() {
    let url = location.href;
    /*alert(url);*/
    let index = url.lastIndexOf("=");
    let index2 = url.length;
    let realId = url.substring(index+1,index2);
    //alert("当前用户ID是:"+realId);

    $.getJSON("/" + realId + "/userDetail.action", {
       /* "id": realId*/
    }, function (data) {
        let id = data.id;
        let username = data.username;
        /*alert(username);*/
        let pwd = data.pwd;
        let email = data.email;
        /*let realname = data.realname;*/
        let phone = data.phone;
        let sex = data.sex;
        let birthdate = data.birth;
        console.log("birth before: " + birthdate); // 1990-03-08 00:00:00
        if (null != birthdate && "" != birthdate) {
            birthdate = birthdate.substr(0, 10);
            console.log("birth after: " + birthdate); // 1990-03-08
        }
        let headImg = data.headImg;
        $("#id").val(id);
        $("#username").val(username);
        $("#pwd").val(pwd);
        $("#email").val(email);
        /*$("#realName").val(realname);*/
        $("#phone").val(phone);
        // 处理头像图片的显示与隐藏。
        if (null != headImg) {
            $("#userImg").attr("src", "/upload/" + headImg).show();
            $("#headImgHidden").val(headImg);// 将头像文件名赋值给headImg。
        } else {
            $("#userImg").hide();
        }


        //$("input.sex").val(sex);
        $("input[name='sex'][value='" + sex + "']").attr("checked", true);
        /*if (sex == "男"){
            $("input[name='sex'][value='男']").attr("checked",true);
        } else {
            $("input[name='sex'][value='女']").attr("checked",true);
        }*/
        //todo:type 为 date 时的赋值问题
        //1 ：将date 格式化时 天数后面的数值去掉(在service里面)
        $('#birth').val(birthdate);
    });

    $("#header").load("/header.html",function(data){
        $("ul li:eq(4)").css("background-color", "orange");
    });

    /*用户更新表单的异步提交*/
    $("#myForm").ajaxForm({
        resetForm: false,
        clearForm:false,
        //定义返回JSON数据，还包括xml和script格式
        dataType: 'json',
//         在发送之前进行的操作，如果有问题，返回false即可不会进行提交
        beforeSend: function () {
            //表单提交前做表单验证
            return checkForm();
        },
        success: function(data) {
            //提交成功后调用
            console.log("------更新用户返回的数据如下：");
            console.log(data);
            /*window.location.reload();*/
            if (data.verifyCode == "-1") {
                console.log("----------验证码出错！");
                $("#codeImg").siblings("span").text("验证码出错");
                $("#code").css("border","1px solid red");
                $("#code").focus();
                return ;
            } else {
                console.log("----------更新成功！");
                $("#codeImg").siblings("span").text("");
                location.href = "/welcome.action";
            }
        }, error : function(e) {
            console.log("--------更新失败:" + e);
        }
    });
})